package com.boarsoft.message.test.activemq;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.boarsoft.common.util.RandomUtil;
import com.boarsoft.message.bean.Message;
import com.boarsoft.message.core.Messenger;

/**
 * 此类演示了如何使用ActiveMQ/JMS 长连接作为消息发送方式
 * 
 * @author Mac_J
 *
 */
public class AmqPubTest2 {
	private static ClassPathXmlApplicationContext ctx;

	public static void main(String[] args) throws Exception {
		ctx = new ClassPathXmlApplicationContext("classpath:conf/context.xml");
		System.out.println("Startup ".concat(ctx.isRunning() ? "successfully." : "failed."));

		try {
			// final MessageService client = (MessageService) ctx.getBean("amqClient1");
			Message m = new Message();
			m.setTarget("queue1");
			m.setContent("Hello world!");
			// 如果这里不指定收件人，则需要在queues.xml上配置队列的收件人（订阅者）
			m.addRecipient("queue1Consumer1");
			m.setId(RandomUtil.genUUID());
			// client.put(m);

			// 或将amqClient1注入给Messenger，然后使用以下方法：
			Messenger.send(m);

			// 或用原生的JMS API方式
			// final Session session = client.getSession();
			// final MessageProducer producer = client.getProducer();
			// TextMessage tm = session.createTextMessage(m.toJson());
			// producer.send(tm);
		} finally {
			ctx.close();
		}
		System.exit(0);
	}
}